I have been working with computers for decades now – having started with programmable handheld calculators and working my way up and down through mainframes, mini- and micro-computers. I always thought there is an art to writing software, and that good software can be read and admired. Maintainability, readability, and testability are some core needs for software, and after going through many programming paradigms, I feel that functional programming (FP) is the way to go – and several modern web frameworks agree. JavaScript (and now, TypeScript) are essential to web development, and I wanted to show how FP could be successfully used with those languages, and thus my book.
I wrote...
Mastering JavaScript Functional Programming: Write clean, robust, and maintainable web and server code using functional JavaScript and TypeScript
Functional programming is a programming paradigm that uses functions for developing software. This book is filled with examples that enable you to leverage the latest JavaScript and TypeScript versions to produce modern and clean code, as well as teach you how to apply functional programming techniques to develop more efficient algorithms, write more concise code, and simplify unit testing.
The book provides comprehensive coverage of the major topics in functional programming to produce shorter, clearer, and testable programs. By the end of it, you’ll have developed the practical programming skills needed to confidently enhance your applications by adding functional programming to wherever it’s most suitable.
This multi-volume book is, for me, a masterpiece that goes far beyond just coding or algorithms or data structures, and serves as a profound exploration of algorithmic thinking and computer science's theoretical foundations, going deeply into the performance of algorithms and the behavior of data structures.
Knuth's meticulous approach, coupled with his clear and engaging prose (with occasional touches of humor) clearly explains complex concepts, and shows a deep understanding of the artistry inherent in solving computational problems.
Bill Gates said that anybody who went through all its volumes would get a job at his company, and I surely agree! I would recommend this book both for novice or seasoned programmers, because you will always find invaluable insights in it.
Check out the boxed set that brings together Volumes 1 - 4B in one elegant case.
The Art of Computer Programming, Volumes 1-4B Boxed Set
ISBN: 9780137935109
Art of Computer Programming, Volume 1, Fascicle 1, The: MMIX -- A RISC Computer for the New Millennium
This multivolume work on the analysis of algorithms has long been recognized as the definitive description of classical computer science. The three complete volumes published to date already comprise a unique and invaluable resource in programming theory and practice. Countless readers have spoken about the profound personal influence of Knuth's writings. Scientists have marveled at…
This thin but quite fulfilling book is a compact yet profound exploration of proven program correctness, probably one of the first texts to focus on that topic.
Dijkstra's emphasis on mathematical rigor and disciplined thinking reshapes how programmers approach problem-solving. The author imparts essential principles of program construction, advocating for clarity and precision in code, and leading to cultivating a disciplined mindset, and fostering a deep appreciation for the art and science of programming.
Despite its age, all its knowledge is fully valid, and I’d give the book to every programmer so they can reach a higher level of quality.
Clean wraps, corners square, lay flat. No creases to the spine, or hinge. Small frayed spot at the top of the spine. No previous owner's name, no other marks in text. Well kept copy.
This book is essential in that it follows a systematic and scientific approach to software development, advocating for clarity in expressing algorithms, providing a rigorous framework for designing and reasoning about programs, and, fundamentally, always focusing on formal methods and mathematical techniques to ensure correctness and efficiency in programming code.
Most importantly, the book doesn’t just show you how to prove programs correct, but also teaches how to arrive from a definition to an efficient and correct solution, so I would recommend this to every developer.
Of all the books I recommend, this is practically a sort of personal bible, which I very frequently consult.
This book doesn't just show you how to code; with realistic patterns and real-world examples, it's like having experienced mentors guiding your every keystroke. These patterns aren't just snippets; they're blueprints for building robust, flexible software.
I think the book is practically mandatory for all developers, novice or seasoned. It transformed how I approach problems, teaching me techniques I use daily in systems design and development.
Capturing a wealth of experience about the design of object-oriented software, four top-notch designers present a catalog of simple and succinct solutions to commonly occurring design problems. Previously undocumented, these 23 patterns allow designers to create more flexible, elegant, and ultimately reusable designs without having to rediscover the design solutions themselves.
The authors begin by describing what patterns are and how they can help you design object-oriented software. They then go on to systematically name, explain, evaluate, and catalog recurring designs in object-oriented systems. With Design Patterns as your guide, you will learn how these important patterns fit into the…
This book is different from the others I recommended, because its focus is not really on creating algorithms, but rather on how to improve code with a systematic process, keeping functionality but enhancing quality.
The author shows several practical techniques that he applies to real-world problems and empower you to elevate your code's quality and adapt it seamlessly to changing needs. It's not just about writing code; it's about becoming a more effective and confident developer.
I consider this book a companion on the journey to mastering the craft of coding. With it, you’ll always be able to achieve higher-quality code, no matter the original version of the code.
Refactoring is about improving the design of existing code. It is the process of changing a software system in such a way that it does not alter the external behavior of the code, yet improves its internal structure. With refactoring you can even take a bad design and rework it into a good one. This book offers a thorough discussion of the principles of refactoring, including where to spot opportunities for refactoring, and how to set up the required tests. There is also a catalog of more than 40 proven refactorings with details as to when and why to use…
Act Like an Author, Think Like a Business is for anyone who wants to learn how to make money with their book and make a living as an author. Many authors dive into the literary industry without taking time to learn the business side of being an author, which can hinder book sales and the money that can be made as an author.
This resource serves as a guide to mastering the art of financial literary success and to help avoid the mistakes that many authors make while learning the ropes on their own. This book helps authors “think outside…
Act Like an Author, Think Like a Business: Ways to Achieve Financial Literary Success
Do you want to make money with your book? Do you want to make a living as an author? There’s more to doing so than simply writing and publishing your book. Many authors dive into the literary industry without taking time to learn the business side of being an author. This could dramatically hinder your book sales and the money you can make as an author. Without a guide such as this, mastering the art of financial literary success can take you years, and you’ll be sure to make mistakes during the learning phase. Some mistakes could cost you money;…